In order to protect a program against unauthorized use, the program is often designed by the software manufacturer in such a way that it is executable on the computer system only if the computer system comprises a copy protection unit. Such copy protection unit is, for example, a hardware unit, which is often referred to as a dongle and is connected to the computer system via an interface.
The dongle verifies, for example, when calling the program, whether a license key stored on the dongle is identical with the license key in the program. If this is the case, the run authorization is present and the program, which is often present in partially encoded form, is decoded so as to be executable.
A disadvantage of this approach consists in that, after said decoding by means of the dongle, plain text data are present in the computer system, which data may be used to make program copies which are executable without the dongle and to analyze the program.